iT邦幫忙

2021 iThome 鐵人賽

DAY 2
0
  • 深度學習是機器學習領域中的一種作法,主要利用類神經網路的概念,模仿人類神經網路的運作,來判斷資料特徵,達到辨別資料的效果
  • 那在深入了解深度學習到底怎麼做之前,當然必須知道他在整個人工智慧這個大領域中的位置,才能更好理解我們所希望達到的目的與方式,因此先讓我們聊聊人工智慧、機器學習、深度學習,到底差在哪裡吧~

什麼是人工智慧、機器學習、深度學習?

  • 上面這張圖片是來自 NVIDIA 的 what is the difference of AI ML DL 一文,這張圖片其實很好的詮釋了三個名詞的身分
  • 人工智慧/人工智能(Artificial Intelligence, AI)是計算機科學的一個分支,是指由人製造出來的機器所表現出來的智慧。通常是指電腦模擬人類思維過程以模仿人類能力或行為的能力,強調模擬人類智能
    • 這個名詞的定義我們可以發現,AI 這個詞其實可以說是人類對電腦未來的期望,且這名詞從 1950 年代就已經出現了。
  • 機器學習(Machine Learning, ML)則是 AI 的一個子領域,利用觀察到的數據/經驗建構解決問題的演算法。
  • 深度學習(Deep Learning, DL)則是基於 ANN 的具有表徵學習的計算模型。
    • 人工神經網路(Artificial Neural Network,ANN)是受生物神經系統啟發的更廣泛的 ML 方法系列的一部分。
    • 表徵學習是學習輸入數據的表徵,它使執行分類或預測時更容易提取有用的信息。

小小統整一下(翻譯年糕)

簡單來說,

  • AI 是一種計算機科學的領域,期望利用模擬人類思考方式來達到人類思維方式的運算
  • ML 則是 AI 的一個領域,期望從資料、數據之中學習模型
  • DL 則又是 ML 中的一種方法,利用模擬人類腦神經的概念,達到對資料特徵的學習提取

在這裡借用 李弘毅老師 的分類說明,

  • AI 是一個科學的目標
  • ML 是 AI 中的一種手段
  • DL 是 ML 中的一種方式

所以了解深度學習之前,要先有機器學習的基本概念

那機器學習又是如何學習的呢?

  • 我們可以看到上面那張圖片,機器學習的概念和一般程式撰寫的概念其實並不相同

先來看看一般程式語言

  • 在我們一般的程式撰寫中,我們是撰寫規則,並輸入資料之後,輸出一個答案,所以假設我們今天要撰寫一個行為判斷的程式,我們會怎麼撰寫?
    if time <= 6:
        print(sleep)
    elif time <= 12:
        print(working)
    else:
        print(breaking)
    

    上面的程式說明了一個人幾點幾分在做什麼事情

  • 但這邊最大的問題就是我們如果沒有設計到的規則,那面對規則外的互動,我們的程式並沒辦法給予相對應的回應,也就是 程式本身無法超過寫程式的人的設定
  • 所以如果我們其實有四種不同的行為判斷,我們還有一個叫做通勤(commute),會發生甚麼事情
    if time <= 6:
        print(sleep)
    elif time <= 12:
        print(working)
    else:
        print(breaking)
    # no commute option...
    
  • 程式其實就無法輸出第四種狀態,因為我們並沒有設計好這個輸出的邏輯

那如果是機器學習呢?

  • 我們說了,機器學習的目標是去模仿人類解決問題的方式,因此如果我們一樣是給予 if else 邏輯判斷式就一點意義都沒有了,那到底要怎樣解決程式本身限制的問題呢?
  • 因此在機器學習中,我們並不直接撰寫邏輯,相反,我們希望機器幫我們找出判斷邏輯,和該如何判斷資料
  • 所以換句話說,我們不給程式 function 了,我們希望他們就給予的資料,自己產生/挑選一個 function
  • 因此如果是剛剛的情境會怎樣運作呢?可以發現機器學習的話,會自己判斷東西的狀態,延伸出一種判斷方式,換句話說,由於資料內部已經有四種不同的狀態,所以後續的判斷一定會判斷四種

什麼,你說你聽不懂?沒關係,我們拉到 "人類" 學習事物的方式來解釋一遍

人類是怎麼學習的?

  • 回想我們自己學習的過程,假設今天我們要知道一隻狗狗他是狗狗,並不是先知道一隻狗狗有狗毛、狗鼻子、四條腿等等特徵,而是先知道那些生物都是狗狗,然後我們自己在腦袋中生出一個判斷的依據。
  • 所以換句話說,人類的學習是從答案中,回推判斷的 方式特徵判斷邏輯 ,而非給予邏輯並輸出答案的,這就和一般的程式語言有極大的落差。

回到機器學習

  • 因此機器學習的核心概念也是如此,我們人類對於撰寫最佳的判斷邏輯有了極限,那我可不可以改成給予一堆可行 function(define a set of function),然後給予資料集(Data Set),然後請電腦幫我就這些答案,取找出最好的解決方案,也就是模仿人類從答案取得特徵的概念,達到取得最佳判斷邏輯的效果
  • 所以我們其實可以把機器學習簡化成三個大區塊概念


    Reference: ML Lecture 0-1: Introduction of Machine Learning

  • 當然這樣的介紹還是非常粗淺的,但是已經大致上把機器學習的概念給說明了,如果想更清楚的理解到底機器學習是什麼,可以參考 Day-00 裡面的 Reference 的各個資料,裡面都有更詳細的介紹

每日小結

  • 在已經知道機器學習的概念之後,我們可以知道機器學習最核心的概念就是利用結果去回推最佳可行的判斷邏輯
  • 深度學習身為機器學習中的一部份,當然也承襲了這樣的核心概念,這也是為甚麼我們要先對機器學習有基礎的認知,那明天還是讓我們先把機器學習的更多基礎打實一點,之後再來詳細說明深度學習

上一篇
Day-00 引言
下一篇
Day-02 機器學習的介紹
系列文
Deep Learning 從零開始到放棄的 30 天 PyTorch 數字辨識模型31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言